package com.bestcem.xm.member.dao;

import com.bestcem.xm.member.entity.pojo.FootprintDO;

import java.util.List;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 足迹点数据访问层
 * @date 2021-08-17
 */
public interface FootprintDao {
    /**
     * 获取足迹点
     *
     * @param type
     * @param sourceKey
     * @return
     */
    FootprintDO get(Integer type, String sourceKey);

    /**
     * 获取足迹点列表
     *
     * @param orgId
     * @param memberId
     * @return
     */
    List<FootprintDO> list(String orgId, String memberId);

    /**
     * 保存足迹点
     *
     * @param footprint
     * @return
     */
    String saveOrUpdateFootprint(FootprintDO footprint);

    /**
     * 根据组织获取足迹点
     *
     * @param orgId
     * @return
     */
    List<FootprintDO> findByOrgId(String orgId);

    /**
     * 批量保存足迹点
     *
     * @param newFootprintList
     */
    void batchSave(List<FootprintDO> newFootprintList);

    /**
     *  根据组织id 和
     *
     * @param orgId
     * @param type
     * @return
     */
    List<FootprintDO> findByOrgIdAndType(String orgId, int type);

    /**
     * 批量保存行业sample数据
     *
     * @param newFootprintList
     */
    void batchSaveSampleData(List<FootprintDO> newFootprintList);

    /**
     * 统计单个联系人的足迹点
     *
     * @param orgId    公司id
     * @param memberId 联系人id
     * @return 足迹点
     * @author ympan <yuming.pan@idiaoyan.com>
     * @date 16:48 2021/11/26
     */
    Long countFootprint(String orgId, String memberId);


    /**
     * 获取足迹点列表
     *
     * @param orgId
     * @param memberId
     * @param page
     * @param size
     * @return
     */
    List<FootprintDO> list(String orgId, String memberId, Integer page, Integer size);

    List<FootprintDO> listFootprintsByIsCopy(int isCopyDemo, int sourceKey);

    void updateContent(String id, String content);
}
